/*************************************************************************
> File Name: 012.c
> Author: icebear
> Mail: 3322366195@qq.com
> Created Time: 2023-07-19 14:59:28
> Description:  判断101-200之间有多少个素数，并输出所有素数。
                判断素数的方法：用一个数分别去除2到sqrt(这个数)，如果能被整除，
                则表明此数不是素数，反之是素数

************************************************************************/
#include <stdio.h>
#include <math.h>
int is_prime(int num)
{
    if (num <= 3)
    {
        return num > 1;
    }
    // 不在6的倍数两侧的一定不是质数
    if (num % 6 != 1 && num % 6 != 5)
    {
        return 0;
    }
    int sqrt_value = sqrt(num);
    for (int i = 5; i <= sqrt_value; i += 6)
    {
        if (num % i == 0 || num % (i + 2) == 0)
        {
            return 0;
        }
    }
    return 1;
}

int main(int argc, char const *argv[])
{
    for (int i = 101; i <= 200; i++)
    {
        if (is_prime(i))
        {
            printf("%d is prime\n", i);
        }
    }

    return 0;
}
